//
//  BoletoBanco2CEF8Tests.m
//  iBoleto
//
//  Created by Diego Fincatto on 18/01/11.
//  Copyright 2011 Wmix Distribuidora Ltda. All rights reserved.

#import "BoletoBanco2CEF8Tests.h"
#import "BoletoDados.h"
#import "BoletoBanco.h"
#import "BoletoBancoCEF.h"
#import "BoletoUtil.h"

@implementation BoletoBanco2CEF8Tests

- (void)setUp {
    [super setUp];
    
    //data de vencimento
    dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd/MM/yyyy"];
    
    //cria um dado de boleto
    boletoDados = [[BoletoDados alloc] init];
    [boletoDados setAgencia:@"1348"];
    [boletoDados setCarteira:@"82"];
    [boletoDados setCodigoFornecidoAgencia:@"31"];
    [boletoDados setCodigoOperacao:@"870"];
    [boletoDados setDataVencimento:[dateFormatter dateFromString:@"10/01/2011"]];
    [boletoDados setNossoNumero:@"61923681"];
    [boletoDados setValor:[NSDecimalNumber decimalNumberWithString:@"77.14"]];
}

- (void)tearDown {
    [boletoDados release], boletoDados = nil;
    [dateFormatter release], dateFormatter = nil;
    [super tearDown];
}

- (void)testCodigoBanco {
    id<BoletoBanco> boletoBanco = [[BoletoBancoCEF alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"104", [boletoBanco codigoBanco], nil);
    [boletoBanco release], boletoBanco = nil;
}

- (void)testMoeda {
    id<BoletoBanco> boletoBanco = [[BoletoBancoCEF alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"9", [boletoBanco moeda], nil);
    [boletoBanco release], boletoBanco = nil;
}

- (void)testCampoLivre {
    id<BoletoBanco> boletoBanco = [[BoletoBancoCEF alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"82"@"61923681"@"1348"@"870"@"00000031", [boletoBanco campoLivre], nil);
    [boletoBanco release], boletoBanco = nil;
}

- (void)testCampo1 {
    id<BoletoBanco> boletoBanco = [[BoletoBancoCEF alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"1049826199", [boletoBanco campo1], nil);
    [boletoBanco release], boletoBanco = nil;    
}

- (void)testCampo2 {
    id<BoletoBanco> boletoBanco = [[BoletoBancoCEF alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"23681134880", [boletoBanco campo2], nil);
    [boletoBanco release], boletoBanco = nil;        
}

- (void)testCampo3 {
    id<BoletoBanco> boletoBanco = [[BoletoBancoCEF alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"70000000318", [boletoBanco campo3], nil);
    [boletoBanco release], boletoBanco = nil;        
}

- (void)testCampo4 {
    id<BoletoBanco> boletoBanco = [[BoletoBancoCEF alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"4", [boletoBanco campo4], nil);
    [boletoBanco release], boletoBanco = nil;        
}

- (void)testCampo5 {
    id<BoletoBanco> boletoBanco = [[BoletoBancoCEF alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"48430000007714", [boletoBanco campo5], nil);
    [boletoBanco release], boletoBanco = nil;        
}

- (void)testGeraLinhaDigitavelNossoNumero {
    id<BoletoBanco> boletoBanco = [[BoletoBancoCEF alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"10498.26199  23681.134880  70000.000318  4  48430000007714", [boletoBanco linhaDigitavel], nil);
    [boletoBanco release], boletoBanco = nil;   
}

- (void)testGeraCodigoBarrasNossoNumero {
    id<BoletoBanco> boletoBanco = [[BoletoBancoCEF alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"10494484300000077148261923681134887000000031", [boletoBanco codigoDeBarras], nil);
    [boletoBanco release], boletoBanco = nil;
}

@end
